package cn.wsalix.user.service;

import java.util.Observer;

import cn.anlaser.service.BasicService;
import cn.wsalix.admin.entity.SysUser;
import cn.wsalix.user.entity.AuthInfo;
import cn.wsalix.user.entity.Authenticate;
import cn.wsalix.user.entity.Contact;
import cn.wsalix.user.entity.UserInfo;
import cn.wsalix.user.form.AuthForm;
import cn.wsalix.user.form.ContactForm;
import cn.wsalix.user.form.UserInfoForm;
import cn.wsalix.user.repository.UserInfoRepository;

public interface UserInfoService extends
		BasicService<UserInfoForm, UserInfoRepository, UserInfo>, Observer {

	UserInfo findByUser(SysUser user);

	UserInfo findByUser(Long userId);

	/**
	 * @param form
	 * @return 新增联系人
	 */
	Contact crtContact(ContactForm form);

	/**
	 * @param form
	 * @return 修改联系人
	 */
	Contact editContact(ContactForm form);

	/**
	 * @param form
	 * @return 复制联系人
	 */
	Contact cloneContact(ContactForm form);

	/**
	 * @param form
	 * @return 用户创建认证项目，并
	 */
	Authenticate crtAuth(AuthForm form);

	/**
	 * @param form
	 * @return 客服认证通过
	 */
	Authenticate passAuth(AuthForm form);
	/**
	 * @param form
	 * @return 客服认证通过
	 */
	Authenticate unPassAuth(AuthForm form);
	/**
	 * @param form
	 * @return 用户提交认证资料
	 */
	AuthInfo uploadAuthInfo(AuthForm form);

	/**
	 * @param form
	 * @return 客服认证通过
	 */
	AuthInfo passAuthInfo(AuthForm form);
	/**
	 * @param form
	 * @return 客服认证通过
	 */
	AuthInfo unPassAuthInfo(AuthForm form);
}
